package com.scedu.controller;

import com.scedu.springcloud.entity.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

import java.util.List;

//提供restful服务
@RestController
public class DeptConsumerController {
    //理解：消费者，不应该有service层
    //RestTemplate 供我们直接调用就可以了 注册到spring中
    //(url,实体:Map,Class<T> responseType)
    //本地没有service层
    //需要远程调用 http://localhost:8001/all
    //先创建静态变量
    //原来的访问地址：
    //private static final String REST_URL_PREFIX="http://localhost:8001/";
    //Ribbon 我们这里的地址，应该是一个变量，通过服务名来访问
    //名称是在服务提供者的配置文件properties里定义的
    // spring.application.name=springcloud-provider-dept
    private static final String REST_URL_PREFIX="http://SPRINGCLOUD-PROVIDER-DEPT/";
    @Autowired
    RestTemplate restTemplate; //提供多种便捷访问远程http服务的方法，简单的RestFul服务模板
    /*查询单个

     */
    @GetMapping("/get/{id}")
    public Dept get( @PathVariable("id") Long id){
        return restTemplate.getForObject(REST_URL_PREFIX+"get/"+id, Dept.class);
       // return service.queryById(id);
    }
    /*添加

     */
    @PostMapping("/add")
    public Integer add(Dept dept){

        return restTemplate.postForObject(REST_URL_PREFIX+"add/", dept,Integer.class);
    }
    /*查询所有

     */
    @GetMapping("/all")
    public List<Dept> queryALL()
    {
        return restTemplate.getForObject(REST_URL_PREFIX + "all/", List.class);
    }
}
